using UnityEngine;

namespace UnityBasicGem.Example0
{
	public class Player : MonoBehaviour
	{
		/// <summary>
		/// 是否着陆
		/// </summary>
		public bool Landed { get; private set; }

		/// <summary>
		/// 跳跃的高度
		/// </summary>
		public float JumpHeight = 4.0f;

		void Start()
		{
			Landed = false;
		}

		void Update()
		{
			// 着陆后的处理……
			if (Landed)
			{
				// 点击鼠标右键……
				if (Input.GetMouseButtonDown(0))
				{
					Landed = false;

					// 通过跳跃的高度，算出初始速度
					float ySpeed = Mathf.Sqrt(2.0f * Mathf.Abs(Physics.gravity.y) * JumpHeight);

					GetComponent<Rigidbody>().velocity = Vector3.up * ySpeed;
				}
			}
		}

		// 需要注意如果未和参数代表的对象发生碰撞则此函数不会被调用
		void OnCollisionEnter(Collision collision)
		{
			// Debug.Log 的使用方法	
			// 所有的对象作为参 Debug.Log 的参数时都将调用 “ToString()” 方法
			// float 等类型也将执行 ToString() 
			Debug.Log(collision.gameObject.ToString());

			// 如果没有执行这一步，和小球碰撞后 this.isManded 将变为 true 
			if (collision.gameObject.CompareTag("Floor"))
			{
				Landed = true;
			}
		}
	}
}